IMS is a hierarchical database management system (HDBMS) developed by International Business Machines Corporation. IMS has wide spread usage in many large enterprises where high transaction volume, reliability, availability and scalability are of the utmost importance. IMS provides base software and interfaces for running the businesses of many of the world's large corporations. However, companies incorporating IMS databases into their business models typically make significant investments in IMS application programs in order to have IMS perform meaningful data processing work particularly tailored to the needs of their respective enterprises. IMS application programs are typically coded in COBOL, PL/I, C, PASCAL or assembly language. These application programs perform IMS database functions by making Data Language One (DL/I) calls to invoke needed IMS processing.
An application program may be custom developed by a company for its exclusive use on a particular IMS system. However, there is a different class of application programs known in the art as a tools, utilities, or utility programs (henceforth referred to as utilities). These utilities are frequently developed by a software provider to perform tasks that are common in many IMS installations, thereby saving a significant amount of work otherwise expended in developing custom applications to perform very common tasks. For example, unloading and reloading IMS databases for the purposes of backup/recovery or database reorganization are examples of very common tasks for which numerous unload/reload utilities are currently available.
The use of these utilities may save significant time when compared to the laborious process of developing comparable custom application programs. However, the unload/reload utilities briefly discussed above have limitations which may require the use of custom applications, or custom programmed exit routines used in conjunction with the unload/reload utilities whenever segment specific selection criteria must be utilized. Custom programming may cause additional time delays and increased expense for programmer development when compared to the efficiency and convenience of utilizing standard “off the shelf” utilities. Furthermore, these custom applications or programming exits may require additional computing resources and impact the performance of the data processing system on which these database operations are performed.
Database operations that may encounter this form of limitation include merge, replication, mass update and mass insert from a source database to a target database where only a selected subset of the segments in the source database are to be utilized. Whenever this form of limitation is encountered, the enterprise may be forced to embark on expensive and time consuming custom database application programming endeavors to accomplish the needed database operations and the performance, efficiency and cost advantages normally associated with the use of “off the shelf” unload/reload utilities may be lost.
Accordingly, there is a need for an IMS unload utility that can facilitate a variety of database management tasks, including mass insert, mass update, database replication, database merge, database consolidation, database recovery and the like where only a selected subset of segments in the source database are to be utilized. It is highly desirable to enhance programmer productivity in the accomplishment of these tasks, as well as improve the processing efficiency of the computing system on which they are performed.